export class CloudService {
  constructor() {
    if (!wx.cloud) {
      console.error('请使用 2.2.3 或以上的基础库以使用云能力')
      return
    }
    
    // 初始化云开发环境
    wx.cloud.init({
      env: 'your-env-id', // 替换为你的云开发环境ID
      traceUser: true
    })
    
    // 初始化数据库
    this.db = wx.cloud.database()
    
    // 初始化云函数
    this.cloud = wx.cloud
  }
  
  // 调用云函数
  async callFunction(name, data = {}) {
    try {
      const res = await this.cloud.callFunction({
        name,
        data
      })
      return res.result
    } catch (error) {
      console.error(`调用云函数 ${name} 失败:`, error)
      throw error
    }
  }
  
  // 数据库操作
  async add(collection, data) {
    try {
      const res = await this.db.collection(collection).add({
        data
      })
      return res._id
    } catch (error) {
      console.error(`添加数据到 ${collection} 失败:`, error)
      throw error
    }
  }
  
  async get(collection, query = {}) {
    try {
      const res = await this.db.collection(collection).where(query).get()
      return res.data
    } catch (error) {
      console.error(`从 ${collection} 获取数据失败:`, error)
      throw error
    }
  }
  
  async update(collection, query, data) {
    try {
      const res = await this.db.collection(collection).where(query).update({
        data
      })
      return res.stats.updated
    } catch (error) {
      console.error(`更新 ${collection} 数据失败:`, error)
      throw error
    }
  }
  
  async remove(collection, query) {
    try {
      const res = await this.db.collection(collection).where(query).remove()
      return res.stats.removed
    } catch (error) {
      console.error(`从 ${collection} 删除数据失败:`, error)
      throw error
    }
  }
  
  // 实时数据库监听
  watch(collection, query, callback) {
    return this.db.collection(collection).where(query).watch({
      onChange: callback,
      onError: (err) => {
        console.error(`监听 ${collection} 失败:`, err)
      }
    })
  }
} 